Real time clock with neural network correction of temperature-based changes in frequency

ABSTRACT

Temperature-independent clock generation systems and methods are described that include a trained neural network coupled to a frequency correction circuit that corrects a crystal resonator output of a clock signal having a frequency that changes with changes in temperature. The neural network is trained with test temperatures and corresponding temperature based changes in frequency for test resonators of the same type as the resonator of the real time clock. The neutral network is trained to output frequency corrections based on a set of measured reference temperature-based changes in frequency for the crystal resonator and a current temperature of the resonator. The frequency correction circuit receives the frequency corrections from the neural network and corrects changes in the frequency caused by the changes in temperature of the resonator to provide a clock signal having an output frequency that is independent of the current temperature of the resonator.

RELATED APPLICATION INFORMATION

This patent claims priority from provisional patent application62/718,303, filed Aug. 13, 2018, titled “REAL TIME CLOCK WITH NEURALNETWORK CORRECTION OF TEMPERATURE-BASED CHANGES IN FREQUENCY” which isincorporated herein by reference.

NOTICE OF COPYRIGHTS AND TRADE DRESS

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. This patent document may showand/or describe matter which is or may become trade dress of the owner.The copyright and trade dress owner has no objection to the facsimilereproduction by anyone of the patent disclosure as it appears in thePatent and Trademark Office patent files or records, but otherwisereserves all copyright and trade dress rights whatsoever.

BACKGROUND Field

This disclosure relates to the correction of temperature-based changesin frequency of a real time clock.

Description of the Related Art

Real time clock correction of changes in frequency due to changes intemperature has historically been performed using a mathematicalalgorithm such as a parabolic, quadratic or N-degree equation to modelthe change in the resonant pulse frequency of a crystal resonator of theclock when the temperature of that crystal changes. The resonator may bea crystal oscillator such as an electronic oscillator circuit that usesthe mechanical resonance of a vibrating crystal of piezoelectricmaterial to create an electrical signal with a precise frequency. Thisfrequency is often used to keep track of time, as in quartzwristwatches, to provide a stable clock signal for digital integratedcircuits, and to stabilize frequencies for radio transmitters andreceivers. A common type of piezoelectric resonator used is the quartzcrystal, so oscillator circuits incorporating them became known ascrystal oscillators, but other piezoelectric materials includingpolycrystalline ceramics are used in similar circuits. The resonator maybe manufactured for frequencies from a few tens of kilohertz to hundredsof megahertz or greater.

Changes in frequency of a crystal resonator may be caused when thechanges in its temperature create variations in the value of the elasticconstants, dimension and/or other characteristic of the crystalresonator. Thus, as the temperature of the crystal changes, the outputsignal of the resonator increases or decreases away from a constant ordesign specification frequency. This may be referred to astemperature-based changes in vibrating crystal resonator frequency.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a block diagram of a system for training an untrained neuralnetwork with temperature-based changes in vibrating crystal resonatorfrequency for a type of resonator.

FIG. 1B is a graph showing training data for training an untrainedneural network with temperature-based changes in vibrating crystalresonator frequency for a type of resonator.

FIG. 1C is a block diagram of a system for storing in a storage device,reference temperature-based changes in frequency for a resonator to becorrected.

FIG. 1D is a block diagram of a real time clock that uses a trainedneural network to correct temperature based changes in the pulsefrequency of a vibrating crystal resonator.

FIG. 1E is a graph showing reference temperature based changes infrequency, temperature of the clock and a frequency correction for aresonator to be corrected.

FIG. 2 is a flow diagram of a process for calibrating the pulsefrequency of a real time clock over changes in temperature.

FIG. 3 is a graph of errors resulting from using a quadratic fit ormodel to predict changes in pulse frequencies over changes intemperature for a vibrating crystal resonator.

FIG. 4 is a block diagram of a neural network that can be used tocorrect the pulse frequency of a real time clock over changes in thetemperature.

FIG. 5 is a graph of actual changes as compared to changes predicted bya neural network for changes in pulse frequencies caused by changes intemperature for a vibrating crystal resonator.

FIG. 6 is a graph of prediction error between actual changes and changespredicted by a neural network for changes in pulse frequencies caused bychanges in temperature for a vibrating crystal resonator for FIG. 5.

Throughout this description, elements appearing in figures are assignedthree- or four-digit reference designators, where the two leastsignificant digits are specific to the element and the most significantdigit(s) is(are) the figure number where the element is introduced. Anelement that is not described in conjunction with a figure may bepresumed to have the same characteristics and function as apreviously-described element having the same reference designator.

DETAILED DESCRIPTION

There is a desire to improve the accuracy of the correction of real timeclock frequency due to changes in temperature. Descriptions hereininclude embodiments of a neural network to correct for changes infrequency due to changes in temperature, such as to accurately predictand correct for changes in the resonant pulse or clock frequency of avibrating crystal resonator of a clock over a range of temperaturechanges of that crystal or clock.

FIG. 1A is a block diagram of the system 100 for training an untrainedneural network 110 with temperature-based changes in vibrating crystalresonator frequency for a type of resonator. The system 100 may laterinclude or create the trained neural network 120. A “temperature-based”change in a vibrating crystal resonator (e.g., a “resonator”) frequencymay be a change in the frequency of the clock signal or resonant pulseoutput by the resonator that is caused by changes in temperature of theresonator or of a real time clock using the resonator.

The system 100 includes vibrating crystal test resonators of a type ofresonator 101. The type of resonator may be identified by nominalfrequency, brand, make, model, and/or having certain technicalspecifications. In some cases, the type is identified by having acertain, nominal or selected resonant pulse frequency. The testresonators and resonators to be corrected (e.g., see resonator 155 ofFIG. 1D) may be the same or similar type of resonator. They may have thesame nominal or design point, resonant pulse frequency (e.g., asidentified during testing, by resonator make and model, and/or bytechnical specification). Testing data is typically collected over10-100 resonators, or in some cases more than 100 resonators.

The system 100 includes the test device 102 for measuring temperatures106 and temperature-based changes in frequency 108 for a vibratingcrystal resonator, such as for vibrating crystal test resonators of atype of resonator 101. The test device 102 may include components formeasuring the temperature of the resonator and the vibrating crystalresonator output frequency of the resonator when it is at thattemperature. The test device 102 may calculate or measure thetemperature-based changes in frequency by subtracting a nominal (e.g.,desired, normal, constant or specification based) resonant pulsefrequency of the vibrating crystal resonator from the currently measuredvibrating crystal resonator output frequency of the resonator when it isat that measured temperature. The nominal pulse frequency may be afrequency of the resonator during normal or nominal use of the clock ora processor having the clock. The components of the test device 102 mayinclude computer equipment (e.g., computers, processors, memory,software, chips), temperature sensors (e.g., high accuracythermometers), frequency sensors (e.g., oscilloscopes, spectrumanalyzers, and the like).

The test device 102 may provide data, such as identification of one typeof different types of resonators that the untrained neural network 110will be trained for; and the test data 106 and 108 to be used to trainthe untrained neural network 110. The untrained neural network 110 maybe trained to become or create the trained neural network 120. Thetrained neural network 120 may be used to accurately predict and correctfor changes in the resonant pulse frequency of a vibrating crystalresonator of a clock over a range of temperature changes of that crystalor clock. The changes may be changes from the nominal frequency. Aresonator used for testing may be called a “test resonator” and thosebeing corrected in the clock may be called “resonators to be corrected.”

The test device 102 determines, stores and/or outputs to the untrainedneural network 110, the test data of temperatures 106 and correspondingtest temperature-based changes in the frequency 108 for a test resonatorof a type of resonators 101. The test data of temperatures 106 andcorresponding test temperature-based changes in the frequency 108 for atest resonator may include a set of reference temperatures andcorresponding temperature based changes in frequency that are measuredand stored for a resonator to be corrected. The test device 102 maydetermine, store and/or output data 106 and 108 to the untrained neuralnetwork 110, for each of the test resonator of a type of resonators 101.The test data 106 and 108 for all of the test resonator devices 101 areinput to train the untrained neural network 110.

FIG. 1B is a graph 111 showing training data 106 and 108 for training anuntrained neural network 110 with temperature-based changes in vibratingcrystal resonator frequency for a type of resonator, such as resonators101. Graph 111 shows an example for four test temperatures TT0, TT1, TT2and TT3 having corresponding test changes in frequency deltaTF0,deltaTF1, deltaTF2 and deltaTF3 as noted at data 112, 114, 116 and 118,respectively. In one case, data 112, 114, 116 and 118 are test data 106and 108 for each entry of training data. For example, deltaTF0-deltaTF3are test data 108 and test temperatures TT0-TT3 are test data 106.

The data 112-118 forms or is part of curve 115 such as a curve resultingfrom training network 120 for a single test resonator or resonators 101.For example, for any one resonator of resonators 101, various differentones of data 106 and 108 at various temperatures (e.g., data 112-118)may be input to train network 110. For instance, for a test resonator,network 120 may be trained with input data 112-118 as data 106 and 108for various different temperatures Tx. This will train the network witha data point for each Tx to further define curve 115 for a single testresonator.

Network 110 may be further trained by inputting various ones of data 106and 108 for various different temperatures Tx for all of the resonatorsof resonators 101. This will train the network with additional curvessimilar to curve 111 for each of the test resonators 101. Each curvewill have similar test temperatures TT0-TTn and corresponding changes infrequency deltaTF0-deltaTFn those temperatures.

The test data 106 (e.g., TT0-TT3) may be a number of test temperaturesof, or measured, for the test resonator by the device 102 when the testresonator is at a certain test temperature (e.g., is temperaturestable). The test data 106 may be two or more test temperatures selectedto characterize a non-linear curve or waveform (e.g., curve 115) oftemperature-based changes in frequency for the test resonator that isused for training the untrained neural network 110. They may be selectedas specific temperatures of the crystal or clock. The specific testtemperatures may be between the reference threshold low and thresholdhigh temperatures. They may be selected to most easily characterize thecurve. The test temperatures may be in a temperature range of betweenminus 40 degrees Celsius and plus 125 degrees Celsius. The test device102 determines, stores and/or outputs to the untrained neural network110, the test data 108 of test temperature-based changes in vibratingcrystal resonator frequency for the test resonator corresponding to thetemperatures of the test data 106. The test data 108 may be a number oftest temperature-based changes in vibrating crystal resonator frequencymeasured by the device 102 when the test resonator is at a certain testtemperature as indicated by the test data 106.

The test data 108 (e.g., deltaTF0-deltaTF3) may be a number of testchanges in test frequency of the resonator pulse output frequency thatare caused or result from the test temperatures selected for the testdata 106. Each test temperature may have a corresponding testtemperature-based change in frequency. Along with the test temperatures,the test changes in frequency may be used to characterize a non-linearcurve or waveform of temperature-based changes in frequency (e.g., curve115) for the test resonator that is used for training the untrainedneural network 110. In one example, the training of the network 110 maydetermine or create weightings between neurons of the neural networkthat create or are part of the trained network 120 (e.g., see FIG. 4).The output of each neuron is that neuron's nonlinear function of theweighted sum of the inputs to the neuron.

The training of the network 110 includes updating the weightings betweenneurons at each neuron of the neural network to minimize the differencebetween an output of the networks predicted change in the frequency(e.g., deltaFC) at a temperature of data 106 and the actual change infrequency in the data 108. Once the difference between deltaFC and data108 is below a desired or predetermined threshold for a desired numberof training temperatures 106, the network 110 becomes the trainednetwork 120.

Once network 120 is trained, it can correct temperature-based changes infrequency for a resonator to be corrected when input with referencetemperature based changes in frequency that characterize that resonatorin the network and a temperature of the resonator to find thecorresponding frequency correction deltaFC for the temperature.

FIG. 1C is a block diagram of the system 130 for measuring and storingin a storage device 135, reference temperature-based changes infrequency 133 of a resonator to be corrected 155. The system 130 may usethe test device 102 to measure reference temperatures andtemperature-based changes in frequency 132 of a resonator to becorrected 155, similar to the descriptions for the system 100 measuringthose of a test resonator of resonators 101 for the test data 106 and108.

The measured data 132 may be similar to measured data 106 and 108 exceptdata 132 is for resonator 155 while data 106 and 108 are for resonators101, and data 132 is only at specified reference temperatures (e.g.,T0-T2 of FIG. 1E). For example, measured data 132 may be similar tomeasured data 106 and 108 but be determined by the test device 102 (oranother one of test device 102) for another resonator (e.g., theresonator to be corrected 155) of the type of resonator or resonators101 used to train the trained model 120.

The reference temperatures (e.g., T0-T2 of FIG. 1E) of data 132 may betwo or more reference temperatures selected to characterize a non-linearcurve or waveform 125 of reference temperature-based changes infrequency 133 for the resonator to be corrected that are input to thetrained neural network 120. They may be selected as specific referencetemperatures of the crystal or clock. The specific referencetemperatures may be a threshold low, nominal (or normal), and thresholdhigh temperature that can be selected to most easily characterize thecurve. They may be two of those three temperatures. In some cases, thespecific reference temperatures may be those determined by testing orknow to be “nominal” such as a temperature that occurs during normal ornominal use of the clock or a processor having the clock; to be “at alow threshold” such as a temperature that occurs during minimum use ofthe clock or a processor having the clock; and/or to be “at a highthreshold” such as a temperature that occurs during maximum use of theclock or a processor having the clock. They may be between 2 and 5temperatures. In some cases, they will be 3 temperatures.

The corresponding reference temperature-based changes in frequency(e.g., deltaF0-deltaF2) or 133 may be two or more changes in frequencyof the resonator pulse output frequency that are caused or result fromthe reference temperatures selected (e.g., T0-T2). Each referencetemperature may have a corresponding reference temperature-based changein frequency of frequencies 133. The reference changes in frequency 133may be used to characterize a non-linear curve or waveform 125 oftemperature-based changes in frequency for the resonator to be corrected155 that is used by the trained neural network 120 to determine deltaFCat temperature Tx. In one case, the reference temperatures and thereference changes in frequency are be used to characterize a non-linearcurve or waveform 125. In some cases, the changes 133 are stored in thenetwork 120 as inputs 133.

The test device 102 determines or measures data 132 and outputs data 133to the storage device 135. The system 130 may store or save thetemperature-based changes in frequency 133 in a storage device 135,which may be a type of computer memory. The storage device 135 may be aRAM, ROM, flash, hard drive, or other digital memory that can beprogrammed with and store the data 133 for months or years, such as foruse by a real time clock 150. It may be a flash memory that can bereprogrammed as needed to change the reference data. Storage device 135may be a separated device or chip than a device or chip having theneural network 110 or 120. In other cases, storage device 135 may beincorporated into the same device or chip as the neural network 110 or120. In one case, reference storage 135 is within or part of the trainedneural network 120.

The system 130 may measure data 132 and store data 133 for a resonatorto be corrected in a separate one of the storage device 135 for eachresonator to be corrected. Storage device 135 and the neural network 120are part of a pulse frequency temperature corrector device or chip. Forinstance, the pulse frequency temperature corrector device or chip mayinclude the trained neural network 120 and the storage device 135 priorto storing data 133 on the storage device 135. Then, the data 133 may bestored on the storage device 135 as noted for system 130, to create thepulse frequency temperature corrector 170 shown in FIG. 1D.

FIG. 1D is a block diagram of a real time clock 150 such as a clock thatis part of and/or provides a clock signal for a processor. Clock 150 maybe a temperature-independent clock generator. The real time clock 150uses the trained neural network 120 to correct temperature based changesin the pulse frequency 157 of the vibrating crystal resonator 155. Thereal time clock 150 includes a vibrating crystal resonator to becorrected 155 and a pulse frequency temperature corrector 170. The pulsefrequency temperature corrector 170 includes the storage 135 oftemperature-based changes in frequency for the resonator to be corrected133, a temperature sensor 172, the trained neural network 120 and afrequency correction circuit 180.

The pulse frequency temperature corrector 170 may be or include a chipto correct for changes in a resonance pulse frequency of the crystalresonator 155 over changes in temperature of the crystal such as whenmeasured temperature Tx changes.

The vibrating crystal resonator 155 sends or provides a resonant pulsewith frequency F1 157 to the frequency correction circuit of the pulsefrequency temperature corrector 170. The storage of temperature-basedchanges in frequency for the resonator to be corrected 135 sends orprovides temperature-based changes in frequency for the resonator to becorrected 133 to the trained neural network 120. The temperature sensor172 sends or provides temperature of clock Tx 174 to the trained neuralnetwork 120. The trained neural network 120 sends or provides afrequency correction deltaFC for temperature Tx 176 to the frequencycorrection circuit 180.

The temperature of clock Tx 174 may be a temperature measure for or atthe clock or resonator 155. It may be measured similar to how the testdevice 102 measures the temperature for the data 106 or 132.

Based on the inputs of temperature-based changes in frequency for theresonator to be corrected 135 and the Temperature of clock Tx 174, thetrained neural network 120 outputs frequency the correction deltaFC fortemperature Tx 176. The frequency correction deltaFC for temperature Tx176 may be a temperature-based change in frequency for the resonator tobe corrected, based on temperature Tx, similar to test data oftemperature-based changes in vibrating crystal resonator frequency forthe test resonator 108 being based on the test data temperatures 106.That is, based on being trained with data from the same type ofresonators, the network 120 may be able to correct changes in frequencyF1 due to changes in temperature Tx, such as to accurately predict andcorrect for changes in the resonant pulse frequency of a vibratingcrystal resonator 155 of real time clock 150 over a range of temperaturechanges of that crystal resonator or clock.

FIG. 1E is a graph 121 showing reference temperature based changes infrequency, temperature of the clock Tx 174 and frequency correctiondeltaFC for temperature of the clock 176 for a system 150 for neuralnetwork correction of temperature-based changes in frequency for aresonator to be corrected 155. Graph 121 shows an example for threereference temperatures T0, T1 and T2 having corresponding changes infrequency deltaF0, deltaF1 and deltaF2 as noted at data 122, 124, 126,respectively. In one case, data 122, 124 and 126 are reference data 133for each frequency correction. In another case, only deltaF0, deltaF1and deltaF2 are reference data 133 and reference temperatures T0, T1 andT2 are already known by the network 120 for each entry of training data.The network may already know the reference temperatures by beingprogrammed to receive the reference data 133 as the changes in frequencyfor resonator 155 at temperatures T0, T1 and T2.

Graph 121 shows an example for one measured temperature Tx having acorresponding frequency correction deltaFC as noted at data 128. In onecase, measured temperature Tx 174 and reference data 133 are input tothe network 120 which outputs the corresponding change in frequencydeltaFC as data 176 for one entry of temperature Tx measured on aperiodic basis. The network 120 may also receive the inputs whentemperature Tx exceeds a high and/or low temperature threshold.

The data 122-126 forms or is part of curve 125 such as a curve resultingfrom inputting deltaF0-deltaF2 into trained network 120 for a resonatorto be corrected 155. Network 120 may characterize resonator 155according to or as curve 125. For example, for one resonator 155, thesame reference data 133 and temperature Tx 174 at various temperaturesmay be input into trained network 120 which will output a correctiondeltaFC or delta FC for each of the temperatures Tx input with the data133. For instance, for each Tx (and data 133) the network will finddeltaFC along curve 125 of the trained network 155 which is based oninput of reference data 133 for that particular resonator 155. That is,the trained network 120 will define a curve 125 for the resonator 155,based on the training data 106 and 108 input during training usinginputs 133 and find a deltaFC on that curve 125 for temperature Tx. Thetemperatures Tx may be in a temperature range of between minus 40degrees Celsius and plus 125 degrees Celsius.

Based on the input of the frequency correction deltaFC for temperatureTx 176, the correction circuit 180 may correct or change resonant pulsewith frequency F1 157 to be clock output pulse with the correctedfrequency F2 190. That is, the clock output pulse with correctedfrequency F2 190 may be a clock signal with a pulse frequency that isthe same as, or within a desired threshold of the nominal pulsefrequency of the resonator 155. The threshold may be less than 1 partper million (ppm). In some cases, it may be less than 0.3 ppm.

In one case, the circuit 180 may be or use a programmable capacitor inparallel with the resonator 155 to correct the output frequency. In somecases, circuit 180 may be or use a digital circuit that suppresses, doesnot output or “swallows” occasional resonant pulses of the resonator tocorrect the output frequency. In either case the correction is tocorrect frequency F1 157 to be clock output pulse with correctedfrequency F2 190. For example, network 120 may be trained tocharacterize resonator 155 based on data 133 so that deltaFC can be areduction in the clock frequency F1 but not an increase. For example,network 120 can be trained to set curve 125 so that the nominal ordesired frequency for F1 is at the peak of curve 125 and any changes areonly reductions in that frequency.

The components of the corrector 170 may be embodied in computer logic,hardware, circuitry, software and the like. In some case, the storage135 is computer memory, the sensor 172 is a high accuracy temperaturesensor (e.g., thermometer), the network 120 is implemented in softwareor computer instructions executed by a processor or chip of corrector170, and/or the circuit 180 is computer hardware or logic controlled orprogrammed by the network 120. In some cases, network 110 and 120 areimplemented in software instruction that are executed by a processor orin electronic hardware, such as software stored in RAM or ROM memory.

FIG. 2 is a flow diagram of a process 200 for calibrating the pulsefrequency of a real time clock over changes in temperature, such as theclock 150 having the vibrating crystal resonator 155 that outputs aresonant pulse having a frequency F1 which the corrector 170 uses thenetwork 120 to correct to the frequency F2.

The process 200 starts at 210 with training the untrained neural network110 with the measured test data temperatures 106 and the correspondingchanges in frequency 108 of test resonators 110.

Training at 210 may include measuring various test temperatures 106 andcorresponding test temperature based changes in frequency 108 of anumber of test resonators of a type of crystal resonator 101 of realtime clocks using a test device 102. The test temperatures andcorresponding temperature based changes in frequency may include a setof reference temperatures and corresponding temperature based changes infrequency 132. For example, training at 210 may include inputting to anuntrained neural network 110, a number of test temperatures 106 andcorresponding temperature based changes in frequency 108 for a number oftest resonators of a type of crystal resonator 101 of real time clocks(e.g., clock 150). The crystal resonator 155 may output a clock signalhaving a first frequency F1 that changes in frequency with changes intemperature Tx of the resonator 155 and/or clock 150.

If at 215 the training is not complete, the process 200 returns to 210such as to further train the network 110 using additional testresonators of resonators 101. Training at 210 may be described astraining neural network 120 to correct temperature-based changes infrequency of a vibrating crystal resonator 155.

If at 215 the training is complete, the process 200 continues to 220such as to create the trained neural network 120. The processes 210, 215and 220 may be described as a “Training phase” and may be performed bythe system 100 and may be repeated to create the network 120 formultiple resonators to be corrected 155 of the same type that network120 was trained for. The training phase may also be repeated to trainmultiple networks 120 for multiple types of resonators. Training at210-220 may include descriptions for FIGS. 1A-1B.

Next, the process 200 continues to 230 to measure and store thetemperature-based changes in frequency 133 for a resonator to becorrected 155 in the storage device 135. The process 230 may bedescribed as a “Mating phase” and may be performed by the system 130 andmay be repeated to store data 133 into multiple devices 135 for multipleresonators to be corrected of the same type.

The process 230 may include creating the set of reference temperaturebased changes in frequency 133 for the resonator by measuring referencetemperature and temperature based changes in frequency 132 of theresonator at a set of temperatures that correspond to the set ofreference temperature based changes desired. This may occur prior to orin order to store changes 133.

The process 230 may include coupling (e.g., attaching or integrating)the trained neural network 120 to a frequency correction circuit 180that corrects changes in a clock signal F1 that change in frequency withchanges in temperature Tx of a crystal resonator 155 that is a same typeof crystal resonator as the test resonators 101. It may also includecoupling reference inputs of the trained neural network 120 to referencestorage 135 that outputs a set of reference temperature based changes infrequency 133 for the resonator; and coupling a temperature input of thetrained neural network 120 to a temperature sensor 172 that outputs acurrent temperature Tx of the resonator. Measuring and storing at 230may include descriptions for measuring data 132 and storing data 133 atFIG. 1C.

Then, the process 200 continues to 233 to input the temperature-basedchanges in frequency 133 for the resonator to be corrected to thetrained neural network 120. Inputting at 233 may include descriptionsfor inputting data 133 at FIGS. 1C-1E.

During or after the process 233, the process 200 includes 274 to inputthe temperature Tx 174 of the clock 150 having the resonator 155 to thetrained neural network 120. Inputting at 274 may include descriptionsfor inputting temperature Tx at FIGS. 1D-1E.

Next, the process 200 continues to 276 to output the frequencycorrection deltaFC 176 for the temperature Tx from the trained neuralnetwork 120 based on the inputs at 233 and 274. Outputting at 276 mayinclude descriptions for outputting correction deltaFC at FIGS. 1D-1E.

Then, the process 200 continues to 257 to receive the resonant pulsewith frequency F1 157 from the resonator 155. Receiving at 257 mayinclude descriptions for outputting or receiving frequency F1 at FIGS.1D-1E.

Next, the process 200 continues to 280 to correct for changes in thepulse frequency F1 received from 257 caused by the changes intemperature Tx using the frequency correction deltaFC 176 from thetrained neural network 120. Correcting at 280 may include descriptionsfor correcting frequency F1 with deltaFC and/or to be frequency F2 atFIGS. 1D-1E.

After, the process 280, the process 200 continues to 290 to output theclock pulse with the corrected frequency F2. Outputting at 290 mayinclude descriptions for outputting frequency F1 corrected based ondeltaFC and/or outputting frequency F2 at FIGS. 1D-1E.

The processes 233-290 may be described as a temperature-based“Calibration phase” or a temperature-based real time clock “Use phase”.The processes 233-290 may be performed by the clock 150 and may berepeated as desired to update the change in frequency correction deltaFCfor the resonator to be corrected based on a temperature of clock Tx174. For example, process 200 may be repeated periodically or whentemperature Tx exceeds a threshold.

FIG. 3 is a graph 300 of errors resulting from using a quadratic fit ormodel to predict changes in pulse frequencies over changes intemperature for a vibrating crystal resonator. The vertical axis iserrors in the prediction in ppm, and the horizontal axis is temperaturein degrees Celsius. The curve in the graph 300 may be determined bydoing a quadratic fit of changes in pulse frequencies over changes intemperature for one resonator to be corrected. Here, temperature-basedchanges in frequency 133 can be measured for the resonator to becorrected, such as by test device 102, and fit to a quadratic deltafrequency equation of FCquad=a*T*T+b*T+c, where FCquad is the frequencycorrection prediction and T is temperature, to calculate coefficients a,b and c. The delta frequency equation can then be used to predictcorrection values FCquad in the frequency F1 for different temperaturevalues Tx of that resonator. The predicted FCquad values can be comparedwith actual values of temperature and temperature-based changes infrequency for the resonator that are measured using a test device 102.The comparison is plotted as the curve 325 in graph 300. The curve maybe a comparison for measurements at 3 different temperatures such asreference temperatures. The curve 325 shows errors in the predictionthat are greater than −2 ppm for temperatures below 0 degrees, andgreater than +2 ppm for temperatures above 0 degrees. In addition, thecurve 325 switches from errors below −2 ppm to errors above +3 ppm fortemperatures below 0 degrees; and switches from errors above +2 ppm toerrors below −3 ppm for temperatures above 0 degrees. Thus, the range oferrors shown is at least 4 ppm.

FIG. 4 is a block diagram of a neural network 400 that can be used tocorrect the pulse frequency F1 of a real time clock over changes in thetemperature Tx using deltaFC to be frequency F2. The neural network 400may be an example of the network 110 and/or the network 120. The networkis shown with 4 input layer “neurons”, 5 hidden layer neurons and 1output layer neuron. Various other numbers of input and hidden layerneurons may be used.

During training, training data can be input to all of the input layerneurons and the output layer neuron to be processed by or train all ofthe neurons. During use, the input layer neurons will receive input datawhich will be processed by or between all of the neurons and a resultingoutput will be provided at the output layer neuron.

In one training phase case, the network 400 is the untrained neuralnetwork 110 of system 100. In this case, one of the 4 input layerneurons receive test data temperature 106 an inputs (e.g., such astemperatures TT0, TT1, TT2 and TT3 consecutively) and the output isforced to the corresponding temperature-based change in frequency 108(e.g., such as corresponding deltaTF0, deltaTF1, deltaTF2 and deltaTF3)for one of the test resonators 101. The other inputs 2-4 may be set toother temperatures having the same output, or other values appropriatefor training the network 110 given that set of data 106 and 108. Foreach test resonator of resonators 101, these inputs can be repeatedlyinput with different pairs of data 106 and 108, to train the network110. There may be between 4 and 20 pairs for each test resonator. Also,multiple test resonators (e.g., of a type of resonator) can be used totrain the network 110.

As noted, the training of the network 110 may determine or createweightings between the input and hidden neurons; and between the hiddenand output neuron of the network that create or exist in the trainednetwork 120. For instance, FIG. 4 shows hidden neuron H1 receivinginputs 1-4 with weights W11, W21, W31 and W41, respectively. In asimilar manner, the other hidden neurons receive weighted versions ofthe inputs that may have different or similar weightings. The output ofeach neuron may be that neuron's nonlinear function applied to theweighted sum of the inputs to the neuron. In some cases, a separateweighting exists between each of the input neurons and all of the hiddenneurons; the output of each of the hidden neurons is that neuron'snonlinear function applied to each of the weighted sum inputs from theinput neurons; and those outputs of the hidden neurons are summed by theoutput neuron. In one case, each neuron's nonlinear function is or isbased on a sigma or sigmoidal shaped curve such as a curve having aSigmoid function that maps the input of a signal (e.g., weighted input)to the neuron to the output signal from that neuron. For instance, as aresult of each training data input of data 106 and 108, the weightingbetween each input neuron and all of the hidden neuron can be updated tomore accurately model or predict the temperature-based change infrequency due to changes in the temperature, such as to more accuratelycreate an accurate version of curve 115 for each test resonator. Inaddition, in some cases, as a result of each training data input of data106 and 108, each neuron's nonlinear function can be updated to moreaccurately model or predict the temperature-based change in frequencydue to changes in the temperature, such as to more accurately create anaccurate version of curve 115 for each test resonator.

The training of the network 110 may include updating the weightingsbetween neurons (e.g., W11-W41) to minimize the difference between anoutput of the networks predicted change in the frequency (e.g., deltaFC)and the actual change in frequency in the data 108 at a temperature ofdata 106. Once the difference between deltaFC and data 108 is below adesired or predetermined threshold for a desired number of trainingtemperatures 106, the network 110 becomes the trained network 120.

Once network 120 is trained, it can correct temperature-based changes infrequency for a resonator to be corrected by being input with referencetemperature based changes in frequency that characterize that resonatorin the network and a temperature of the resonator to find thecorresponding frequency correction deltaFC for the temperature.

In one use/calibration phase case, the network 400 is the trained neuralnetwork 120 of the clock 150. In this case, 3 of the 4 input layerneurons receive reference inputs 133 that are three referencetemperature-based changes in frequency 133, such as deltaF0, deltaF1 anddeltaF2 for the resonator to be corrected 155; the 4th input layerneuron receives a temperature of clock Tx 174 for a change in frequencycorrection deltaFC for the resonator to be corrected; and the outputneuron outputs the frequency correction deltaFC for temperature Tx 176.The use/calibration phase can be repeated as desired to update thechange in frequency correction deltaFC for the resonator to be correctedbased on various temperatures of clock Tx 174.

In some cases, the input layer of network 120 may have 3 neurons such aswhere only two of the three reference temperature-based changes infrequency 133 are input to the network 120 with the other data Tx 174.The training phase of this case is the same as for any other number ofchanges in reference data 133. In the use phase of this case, 2 of the 3input layer neurons receive reference inputs 133 that aretemperature-based changes in frequency deltaF(T0) and deltaF(T1); the3rd input layer neuron receives a temperature of clock Tx 174; and theoutput neuron outputs the frequency correction deltaFC for temperatureTx 176 for the resonator to be corrected. The other input 4 may be setto null or another value appropriate for using the network 120 giventhat set of data 133 and 174.

FIG. 5 is a graph 500 of actual changes as compared to changes predictedby a neural network 120 or 400 for changes in pulse frequencies causedby changes in temperature for multiple vibrating crystal resonators. Thevertical axis measures in parts per million (ppm), the predicted valuesof frequency correction deltaFC 176 output by the network 120 and theactually measured temperature-based change in resonator frequency forvarious temperatures Tx, such as actual measured test data 108 for thesame sample resonator. The horizontal axis is a sample number of 115samples of data, each comparing the predicted deltaFC to actuallymeasured temperature-based change (e.g., measured as is data 108) inresonator frequency for 5 humps of data that are each over the sametemperature range of Tx. Each hump in the plot is for one of 5 differentresonators 155 (e.g., each on a separate clock 150 having the samenetwork 120 and corrector 170); and the hump is for various differenttemperatures Tx over a range (e.g., each hump is similar to curve 125for a resonator).

In the graph 500, the network predictions deltaFC over changes intemperature Tx are shown by a “Predicted” black line 525 formingvertical humps along the sample numbers. The actual measuredtemperature-based changes in frequency are shown by “Measured” bubbles535. In the graph 500, the errors in using the network predictions overchanges in temperature are shown by any center of a predicted black line525 that is not centered in a measured bubble 535. As compared to thegraph 300, the graph 500 is more accurate by up to 10× the accuracy. Theerrors in the graph 500 are less than 1.0 ppm. In fact, they are lessthan about 0.2 ppm.

For example, FIG. 6 is a graph 600 of prediction error between actualchanges and changes predicted by a neural network 120 or 400 for changesin pulse frequencies caused by changes in temperature for a vibratingcrystal resonator for FIG. 5. The vertical axis measures in ppm theerror between the predicted values of the frequency correction deltaFC176 output by the network and actually measured temperature-based changein resonator frequency for various temperatures (e.g., measured as isdata 108) shown in FIG. 5. The horizontal axis is a sample number of the115 samples in FIG. 5. The vertical distance of the plot 625 in thegraph 600 shows is the difference or error distance between thepredicted and actually measured temperature-based change in resonatorfrequency for various temperatures of or in FIG. 5.

Graphing the errors in FIG. 6 is similar to graphing in FIG. 3 but thegraph 600 is for many samples and temperatures (115 points) while theplot in the graph 300 is for a single clock or chip over a range oftemperatures. As compared to curve 325 of the graph 300 which has atleast 4.0 ppm in error ranging from +2.0 ppm to −2.0 ppm, the plot 625of graph 600 is accurate by greater than 10× the accuracy, having lessthan 0.4 ppm in error ranging from less than +0.2 ppm to less than −0.15ppm in error.

The concepts described above with respect to using a neural network tocorrect for temperature-based changes in the output frequency of aresonator or real time clock can be used to correct fortemperature-based changes in other devices and electronic components.For example, a network similar to the network 110 can be trained withdata similar to the data 106 and 108; and input with data similar to 133and Tx but with respect to temperature-based changes in resistance of aresistor, trace, wire or other conductor to create a neural networksimilar to the network 120 or 400 that can then compensate with avariable resistor for the temperature-based changes in resistance of theresistor, trace, wire or other conductor. A similar weight concept canbe applied to using networks similar to the networks 110, 120 and/or 400trained with data similar to the data 106 and 108; and input with datasimilar to 133 and Tx but with respect to temperature-based changes inamplification, power consumption, cooling need and controllingprocessing speed to avoid overheating by having the trained networkcontrol a variable resistor at the amplifier output, power limiter orprocessing speed controller, cooling output regulator, and clock of theprocessor, respectively.

Closing Comments

Throughout this description, the embodiments and examples shown shouldbe considered as exemplars, rather than limitations on the apparatus andprocedures disclosed or claimed. Although many of the examples presentedherein involve specific combinations of method acts or system elements,it should be understood that those acts and those elements may becombined in other ways to accomplish the same objectives. With regard toflowcharts, additional and fewer steps may be taken, and the steps asshown may be combined or further refined to achieve the methodsdescribed herein. Acts, elements and features discussed only inconnection with one embodiment are not intended to be excluded from asimilar role in other embodiments.

As used herein, “plurality” means two or more. As used herein, a “set”of items may include one or more of such items. As used herein, whetherin the written description or the claims, the terms “comprising”,“including”, “carrying”, “having”, “containing”, “involving”, and thelike are to be understood to be open-ended, i.e., to mean including butnot limited to. Only the transitional phrases “consisting of” and“consisting essentially of”, respectively, are closed or semi-closedtransitional phrases with respect to claims. Use of ordinal terms suchas “first”, “second”, “third”, etc., in the claims to modify a claimelement does not by itself connote any priority, precedence, or order ofone claim element over another or the temporal order in which acts of amethod are performed, but are used merely as labels to distinguish oneclaim element having a certain name from another element having a samename (but for use of the ordinal term) to distinguish the claimelements. As used herein, “and/or” means that the listed items arealternatives, but the alternatives also include any combination of thelisted items.

It is claimed:
 1. A temperature-independent clock generator, comprising:a crystal resonator to output a first clock signal having a firstfrequency that changes with changes in temperature of the resonator; areference storage to save a set of measured reference temperature-basedchanges in frequency for a particular crystal resonator; a temperaturesensor to output a current temperature of the resonator; a trainedneural network that receives the set of reference temperature-basedchanges in frequency for the crystal resonator and the currenttemperature of the resonator, the trained neural network was previouslytrained with weightings between a network of neurons that are derivedfrom a plurality of test temperatures and corresponding test temperaturebased changes in frequency for a plurality of test resonators of thatare a same type of resonator as the resonator of the clock generator,the neural network trained to output frequency corrections based on theweightings, the set of reference temperature-based changes in frequencyfor the crystal resonator and the current temperature of the resonator;and a frequency correction circuit that receives the frequencycorrections from the neural network and corrects changes in the firstfrequency caused by the changes in temperature of the resonator toprovide a second clock signal having a second frequency that isindependent of the current temperature of the resonator.
 2. The systemof claim 1, wherein the plurality of test temperatures and correspondingtemperature based changes in frequency include a set of referencetemperatures and corresponding temperature based changes in frequencyfor the set of reference temperature based changes in frequency outputby the reference storage.
 3. The system of claim 1, wherein the trainedneural network includes the network of neurons coupled between a)reference inputs that receive the set of reference temperature-basedchanges in frequency for the crystal resonator and a temperature inputthat receives the current temperature of the resonator and b) an outputthat outputs the output frequency corrections; wherein weightingsbetween the neurons are trained to minimize a difference between theplurality corresponding test temperature based changes in frequency anda plurality of predicted temperature based changes in frequencypredicted by the neural network for the plurality of test temperaturesfor the plurality of test resonators of that are a same type ofresonator as the resonator of the clock generator.
 4. The system ofclaim 1, wherein the reference storage is part of the trained neuralnetwork.
 5. The system of claim 1, wherein the set of referencetemperature-based changes in frequency for the crystal resonator aremeasured changes in frequency of the resonator at a set of temperaturesthat correspond to the set of reference temperature based changes.
 6. Asystem for neural network based corrections of to Po lure-based changesin frequency of a vibrating crystal resonator of a real time clock,comprising: a crystal resonator to output a clock signal having a firstfrequency that changes with changes in temperature of the resonator; areference storage to store a set of measured reference temperature basedchanges in frequency for the crystal resonator; a temperature sensor tooutput a current temperature of the resonator to a temperature input ofa trained neural network; the trained neural network previously trainedwith weightings between neurons of a network of neurons, the weightsderived from a plurality of test temperatures and corresponding testtemperature based changes in frequency for a plurality of testresonators of that are a same type of resonator as the crystal resonatorof the real time clock, the trained neural network to output frequencycorrections to a frequency correction circuit based on the weights, themeasured reference temperature based changes in frequency and thetemperature input, the frequency corrections to correct changes in thefirst frequency caused by the changes in temperature of the resonator;and the frequency correction circuit to correct changes in the firstfrequency caused by the changes in temperature of the resonator based onthe output frequency corrections of the neural network.
 7. The system ofclaim 6, wherein the trained neural network includes the network ofneurons coupled between a) reference inputs that receive the set ofreference temperature-based changes in frequency for the crystalresonator and the temperature input and b) an output that outputs thefrequency corrections; wherein the weightings between the neurons aretrained to minimize a difference between the plurality correspondingtest temperature based changes in frequency and a plurality of predictedtemperature based changes in frequency predicted by the neural networkfor the plurality of test temperatures for the plurality of testresonators of that are a same type of resonator as the resonator of thereal time clock.
 8. The system of claim 6, wherein the set of referencetemperature-based changes in frequency for the crystal resonator aremeasured changes in frequency of the resonator at a set of temperaturesthat correspond to the set of reference temperature based changes.
 9. Aneural network for correcting temperature-based changes in frequency ofa vibrating crystal resonator of a real time clock, comprising:previously trained weightings between neurons of a network of neurons,the weights derived from a plurality of test temperatures andcorresponding test temperature based changes in frequency for aplurality of test resonators of that are a same type of resonator as thecrystal resonator of the real time clock; two or more reference inputsfor receiving a set of reference temperature based changes in frequencyfor the resonator; a temperature input for receiving a currenttemperature of the resonator; and an output to output frequencycorrections to correct changes in a frequency of the vibrating crystalresonator; and the neural network trained to generate the frequencycorrections based on the weightings, the reference inputs and thetemperature input.
 10. The neural network of claim 9, wherein thetrained neural network includes the network of neurons coupled betweena) the reference inputs and the temperature input and b) an output thatoutputs the frequency corrections; wherein the weightings between theneurons are trained to minimize a difference between the pluralitycorresponding test temperature based changes in frequency and aplurality of predicted temperature based changes in frequency predictedby the neural network for the plurality of test temperatures for theplurality of test resonators of that are a same type of resonator as theresonator of the real time clock.
 11. The neural network of claim 9,wherein the trained neural network includes a reference storage tooutput the set of reference temperature-based changes in frequency forthe crystal resonator to the reference inputs; and wherein the set ofreference temperature-based changes in frequency for the crystalresonator are measured changes in frequency of the resonator at a set oftemperatures that correspond to the set of reference temperature basedchanges.
 12. The neural network of claim 9, further comprising: thetrained neural network to output the output frequency corrections to afrequency correction circuit; and wherein the frequency correctionscorrect changes in a first frequency of a clock signal of the crystalresonator that changes in frequency with changes in temperature of theresonator.
 13. A method for training neural network to correcttemperature-based changes in frequency of a vibrating crystal resonator,comprising: inputting to an untrained neural network, a plurality oftest temperatures and corresponding temperature based changes infrequency for a plurality of test resonators of a type of crystalresonator of real time clocks; training the neural network to haveweightings between neurons of a network of neurons that are derived fromthe plurality of test temperatures and corresponding test temperaturebased changes in frequency for the plurality of test resonators; and thetype of crystal resonator to output a clock signal having a firstfrequency that changes in frequency with changes in temperature of theresonator.
 14. The method of claim 13 further comprising: coupling thetrained neural network to a frequency correction circuit that correctschanges in a clock signal that change in frequency with changes intemperature of a crystal resonator that is a similar type of crystalresonator as the test resonators; coupling reference inputs of thetrained neural network to a reference storage that outputs a set ofreference temperature based changes in frequency for the resonator; andcoupling a temperature input of the trained neural network to atemperature sensor that outputs a current temperature of the resonator.15. The method of claim 14, further comprising: creating the set ofreference temperature based changes in frequency for the resonator bymeasuring temperature based changes in frequency of the resonator at aset of temperatures that correspond to the set of reference temperaturebased changes; and storing the set of reference temperature basedchanges in frequency for the resonator on the reference storage.
 16. Themethod of claim 14, further comprising: measuring the plurality of testtemperatures and corresponding temperature based changes in frequency ofthe plurality of test resonators of a type of crystal resonator of realtime clocks using a test device.
 17. The method of claim 14, wherein theplurality of test temperatures and corresponding temperature basedchanges in frequency include a set of reference temperatures andcorresponding temperature based changes in frequency for the set ofreference temperature based changes in frequency output by the referencestorage.